package chixing.day13.work;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Collection;

public class Map11 {  // 重命名类名避免冲突
    /**
     * Map集合<K,V>  映射
     *     键值对
     *     key: 唯一性
     *     value: 重复
     *
     * @param args
     */
    public static void main(String[] args) {
        // 各省份的GDP
        // Map<Key,Value> 键值对， key 不能重复
        Map<String,Integer> map1 = new HashMap<>();
        map1.put("陕西",35538);
        map1.put("河北",47536);
        map1.put("安徽",50625);
        map1.put("上海",53926);
        map1.put("浙江",90100);
        map1.put("江苏",137008);
        map1.put("北京",null);
        map1.put("上海",80000);  // 会覆盖之前的上海GDP值
        map1.put(null,null);

        System.out.println(map1); // 看结果， key 不能重复

        //1. 获得 上海的GDP值
        Integer shanghaiGDP = map1.get("上海");
        System.out.println("上海的GDP值: " + shanghaiGDP);

        //2. 获得映射map中键值对的个数
        int size = map1.size();
        System.out.println("键值对个数: " + size);

        //3. 删除key为北京的这条记录
        map1.remove("北京");
        System.out.println("删除北京后: " + map1);

        //4. 将key为陕西的GDP值 改成 36000
        map1.put("陕西", 36000);
        System.out.println("修改陕西GDP后: " + map1);

        //5. 获得该映射map中所有的省份名称，并遍历输出
        Set<String> provinces = map1.keySet();
        System.out.println("所有省份:");
        for (String province : provinces) {
            System.out.println(province);
        }

        //6. 获得该映射map中所有的GDP的值，并遍历输出
        Collection<Integer> gdpValues = map1.values();
        System.out.println("所有GDP值:");
        for (Integer gdp : gdpValues) {
            System.out.println(gdp);
        }

        //7. 是否包含key为黑龙江的这条记录
        boolean hasHeilongjiang = map1.containsKey("黑龙江");
        System.out.println("是否包含黑龙江: " + hasHeilongjiang);

        //8. 是否包含value为80000 的这记录
        boolean hasGDP80000 = map1.containsValue(80000);
        System.out.println("是否包含GDP为80000: " + hasGDP80000);
    }
}

